package entity;

import java.io.Serializable;

import javax.persistence.*;

import vo.PendienteVO;

@Entity
@Table(name = "pendientes")
public class Pendiente implements Serializable
{
	private static final long serialVersionUID = 1L;
	
	private int codigoPendiente;
	private Articulo articulo=null;
	private Tienda tienda=null;

	private int aEnviarATienda;
	private int aPedirAFabrica;
	private int aLlegarDeFabricaYEnviar;
	private int aLlegarDeFabrica;

	public Pendiente()
	{

	}
	
	public int getAEnviarATienda() {
		return aEnviarATienda;
	}

	public void setAEnviarATienda(int enviarATienda) {
		this.aEnviarATienda = enviarATienda;
	}

	public int getALlegarDeFabrica() {
		return aLlegarDeFabrica;
	}

	public void setALlegarDeFabrica(int aLlegarDeFabrica) {
		this.aLlegarDeFabrica = aLlegarDeFabrica;
	}
	
	public int getALlegarDeFabricaYEnviar() {
		return aLlegarDeFabricaYEnviar;
	}

	public void setALlegarDeFabricaYEnviar(int aLlegarDeFabricaYEnviar) {
		this.aLlegarDeFabricaYEnviar = aLlegarDeFabricaYEnviar;
	}

	public int getAPedirAFabrica() {
		return aPedirAFabrica;
	}

	public void setAPedirAFabrica(int aPedirAFabrica) {
		this.aPedirAFabrica = aPedirAFabrica;
	}

	@ManyToOne(cascade=CascadeType.ALL)
	public Articulo getArticulo() {
		return articulo;
	}

	public void setArticulo(Articulo articulo)
	{
		this.articulo=articulo;
	}

	@ManyToOne(cascade=CascadeType.ALL)
	public Tienda getTienda()
	{
		return tienda;
	}

	public void setTienda(Tienda tienda)
	{
		this.tienda=tienda;
	}
	
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	public int getCodigoPendiente()
	{
		return codigoPendiente;
	}
	
	public void setCodigoPendiente(int codigoPendiente)
	{
		this.codigoPendiente=codigoPendiente;
	}
	
	@Transient
	public PendienteVO getVO()
	{
		PendienteVO vo=new PendienteVO(codigoPendiente, articulo.getVO(), tienda.getVO(),
									   aEnviarATienda, aPedirAFabrica, aLlegarDeFabricaYEnviar, aLlegarDeFabrica);
		return vo;
	}
	
	public void setVO(PendienteVO vo)
	{
		this.codigoPendiente=vo.getCodigoPendiente();

		Articulo articulo=new Articulo();
		articulo.setVO(vo.getArticulo());
		this.articulo=articulo;

		Tienda tienda=new Tienda();
		tienda.setVO(vo.getTienda());
		this.tienda=tienda;
		
		this.aEnviarATienda=vo.getAEnviarATienda();
		this.aPedirAFabrica=vo.getAPedirAFabrica();
		this.aLlegarDeFabricaYEnviar=vo.getALlegarDeFabricaYEnviar();
		this.aLlegarDeFabrica=vo.getALlegarDeFabrica();
	}
}
